﻿using CASFacturacion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace SistemaFacturacionWeb
{
    public partial class Formulario_web12 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        private bool EstanvaciosLosCamposObligatorios()
        {
            String descripcion = this.TxtDescripcionProducto.Text;
            String precio = this.TxtPrecioProducto.Text;
            String stock = this.TxtStocProducto.Text;


            String idIva = this.DropDownListIva.SelectedValue;
            String idDepartamento = this.DropDownListdepartamento.SelectedValue;

            if (idIva == "0") idIva = null;
            if (idDepartamento == "0") idDepartamento = null;
            

            return (String.IsNullOrEmpty(descripcion) || String.IsNullOrEmpty(precio)
                 || String.IsNullOrEmpty(stock) || String.IsNullOrEmpty(idIva)
                 || String.IsNullOrEmpty(idDepartamento));
        }



        private bool StockEsNumericoPositivo()
        {
            Boolean respuestaADevolver = false;

            try
            {
                int stock = Convert.ToInt32(this.TxtStocProducto.Text);
                if (stock > 0)
                {
                    respuestaADevolver = true;
                }
            }
            catch (Exception)
            {

                respuestaADevolver = false;
            }

            return respuestaADevolver;
            
        }



        private bool PrecioEsNumericoPositivo()
        {
            Boolean respuestaADevolver = false;

            try
            {
                Decimal precio = Convert.ToDecimal(this.TxtPrecioProducto.Text);
                if (precio > 0)
                {
                    respuestaADevolver = true;
                }
            }
            catch (Exception)
            {

                respuestaADevolver = false;
            }

            return respuestaADevolver;
        }


        private void GuardarProductoYaValidado()
        {
            String descripcion = this.TxtDescripcionProducto.Text;
            Decimal precio = Convert.ToDecimal(this.TxtPrecioProducto.Text);
            int stock = Convert.ToInt32(this.TxtStocProducto.Text);
            String notas = this.txtNotasProducto.Text;
            int idIva = Convert.ToInt32(this.DropDownListIva.SelectedValue);
            int idDepartamento = Convert.ToInt32(this.DropDownListdepartamento.SelectedValue);

            CADProducto.NewProducto(descripcion, precio, stock, notas, idIva, idDepartamento);
        }



        private void LimpiarCampos()
        {
            this.TxtDescripcionProducto.Text = "";
            this.TxtPrecioProducto.Text = "";
            this.TxtStocProducto.Text = "";
            this.txtNotasProducto.Text = "";
            this.DropDownListdepartamento.SelectedIndex = 0;
            this.DropDownListIva.SelectedIndex = 0;

            this.TxtDescripcionProducto.Focus();
        }



        protected void BtnGuardarProducto_Click(object sender, EventArgs e)
        {
            if (EstanvaciosLosCamposObligatorios())
            {
                this.LabelMensajeAltaProducto.Text = "Debe ingresar todos los campos obligatorios";
                return;
            }


            if (!StockEsNumericoPositivo())
            {
                this.LabelMensajeAltaProducto.Text = "El stock debe ser numerico mayor a cero";
                return;
            }

            if (!PrecioEsNumericoPositivo())
            {
                this.LabelMensajeAltaProducto.Text = "El precio debe ser numerico mayor a cero";
                return;
            }


            GuardarProductoYaValidado();
            this.LabelMensajeAltaProducto.Text = "El producto se guardo Ok";

            LimpiarCampos();

            this.GridViewProductos.DataBind();

            

          
        }

        

        

        

        

        
    }
}